home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
Amiga
/
KeyMapLib.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
3KB
|
106 lines
(**************************************************************************
$RCSfile: KeyMapLib.mod $
Description: Keymap library definitions
Created by: fjc (Frank Copeland)
$Revision: 3.2 $
$Author: fjc $
$Date: 1994/08/08 01:10:01 $
$VER: keymap_protos.h 36.4 (19.7.90)
Includes Release 40.15
(C) Copyright 1985-1993 Commodore-Amiga, Inc.
All Rights Reserved
Oberon-A interface Copyright © 1994, Frank Copeland.
This file is part of the Oberon-A Interface.
See Oberon-A.doc for conditions of use and distribution.
***************************************************************************)
MODULE KeyMapLib;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT E := Exec, IE := InputEvent, KM := KeyMap, SYS := SYSTEM;
(*-- KeyMap Base variable --------------------------------------------*)
TYPE
KeyMapBasePtr = CPOINTER TO KeyMapBase;
KeyMapBase = RECORD (E.Library) END;
CONST
name * = "keymap.library";
VAR
base * : KeyMapBasePtr;
(*-- Library Functions ------------------------------------------------*)
(*--- functions in V36 or higher (Release 2.0) ---*)
LIBCALL (base : KeyMapBasePtr) SetKeyMapDefault*
( keyMap [8] : KM.KeyMapPtr );
-30;
LIBCALL (base : KeyMapBasePtr) AskKeyMapDefault* ()
: KM.KeyMapPtr;
-36;
LIBCALL (base : KeyMapBasePtr) MapRawKey*
( event [8] : IE.InputEventBasePtr;
VAR buffer [9] : ARRAY OF CHAR;
length [1] : LONGINT;
keyMap [10] : KM.KeyMapPtr )
: INTEGER;
-42;
LIBCALL (base : KeyMapBasePtr) MapANSI*
( string [8] : ARRAY OF CHAR;
count [0] : LONGINT;
VAR buffer [9] : ARRAY OF CHAR;
length [1] : LONGINT;
keyMap [10] : KM.KeyMapPtr )
: LONGINT;
-48;
(*-- Library Base variable --------------------------------------------*)
(* $L- Address globals through A4 *)
(*-----------------------------------*)
PROCEDURE* CloseLib ();
BEGIN (* CloseLib *)
IF base # NIL THEN E.base.CloseLibrary (base) END
END CloseLib;
(*-----------------------------------*)
PROCEDURE OpenLib * (mustOpen : BOOLEAN);
BEGIN (* OpenLib *)
IF base = NIL THEN
base :=
SYS.VAL
( KeyMapBasePtr,
E.base.OpenLibrary (name, E.libraryMinimum) );
IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
ELSIF mustOpen THEN HALT (100)
END;
END;
END OpenLib;
BEGIN
base := NIL
END KeyMapLib.